序列化示例

若要获取示例和示例的安装说明,请参见下文:

  • 在 Visual Studio“帮助”菜单上单击“示例”

    有关更多信息,请参见定位示例文件

  • 示例的最新版本和完整列表可以从 Visual Studio 2008 示例网站获取。

  • 还可以在计算机的硬盘上查找示例。默认情况下,示例和自述文件将复制到 \Program Files\Visual Studio 9\Samples\ 下的一个文件夹中。对于 Visual Studio 速成版,所有示例都位于 Internet 上。

运行此示例

  • 按 F5。

演示

此应用程序包含两个类,一个使用标准序列化,一个使用自定义序列化。用户界面包括序列化和反序列化这两个类的按钮。使用标准序列化的类可以序列化为 SOAP 文件或二进制文件。使用自定义序列化的类被序列化为 SOAP 文件。TextBox 控件用于显示 SOAP 文件。这两个类都有 SerializableAttribute 属性。下表将对这些类进行描述。

类成员

SerializationClass

CustomSerializationClass

PublicVariable

公共变量在不做更改的情况下进行序列化和反序列化。

公共变量在不做更改的情况下进行序列化和反序列化。

PublicProperty

支持该属性的私有变量在不做更改的情况下进行序列化和反序列化。

支持该属性的私有变量被序列化为 -1,而不管在用户界面中设置为何值。所以它被反序列化为 -1。

NonSerializedVariable

此变量没有序列化,因为它标记有 NonSerializedAttribute。公共变量没有序列化,所以反序列化的值为 0。

尽管该变量标记有 NonSerializedAttribute,但它已经被序列化,因为自定义序列化重写了该设置。公共变量在不做更改的情况下进行序列化和反序列化。

下面演示了三种类型的序列化:

  • SOAP 格式   使用 SoapFormatter 类序列化 Class1

  • 二进制格式化   使用 BinaryFormatter 类序列化 Class1

  • 自定义格式化   Class2 实现 ISerializable 接口,包括用于执行自定义序列化的 GetObjectData 方法。